package com.ajocer.springbootinit.manager.model;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 多模态数据类，用于处理图像、音频等多模态输入
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MultiModalData {
    
    /**
     * 数据类型：image, audio, video等
     */
    private String type;
    
    /**
     * 数据内容，可以是Base64编码的字符串或URL
     */
    private String data;
    
    /**
     * 数据描述
     */
    private String description;
    
    /**
     * 创建图像类型的多模态数据
     * 
     * @param imageData 图像数据（Base64或URL）
     * @return MultiModalData实例
     */
    public static MultiModalData ofImage(String imageData) {
        return MultiModalData.builder()
                .type("image")
                .data(imageData)
                .build();
    }
    
    /**
     * 创建音频类型的多模态数据
     * 
     * @param audioData 音频数据（Base64或URL）
     * @return MultiModalData实例
     */
    public static MultiModalData ofAudio(String audioData) {
        return MultiModalData.builder()
                .type("audio")
                .data(audioData)
                .build();
    }
    
    /**
     * 创建视频类型的多模态数据
     * 
     * @param videoData 视频数据（Base64或URL）
     * @return MultiModalData实例
     */
    public static MultiModalData ofVideo(String videoData) {
        return MultiModalData.builder()
                .type("video")
                .data(videoData)
                .build();
    }
} 